El uso de if sirve para escribir una instrucción o un conjunto de instrucciones de forma condicional. Solamente en el caso de cumplirse la condición que se expresa a continuación de la palabra If se ejecutará el código que viene a continuación. Siempre que el código a ejecutar de forma condicional contenga más de una instrucción, es necesario incluirlo dentro de las llaves. Si es una sola instrucción sería suficiente con ponerla a continuación de los paréntesis. Pero es conveniente usar siempre las llaves por cuestión de claridad y uniformidad en el código.
La condición a evaluar se expresa entre paréntesis () a continuación de la palabra
let edad = prompt("Introduce tu edad");
if (edad >= 18) {
alert("Eres mayor de edad");
}
Los operadores disponibles son aquellos que sirven para comparar diferentes términos: Es mayor, es menor, mayor o igual que, menor o igual que, es, no es... Y hay que tener en cuenta que el comparador de igualdad requiere de al menos dos signos de igual seguidos (==) o de tres si queremos hacer una comparación estricta, que se fije en el tipo de datos también.
Si decimos if(resultado = "apto") {...}
esto es un error porque el signo igual una sola vez es un asignador. Es decir, en ese paréntesis estamos asignando a la variable resultado el valor "apto". Por lo tanto esa expresión es una acción de asignación ("asígnale a una variable un determinado valor"), pero como está a continuación de la palabra if, el programa, además de realizar esa orden de asignación la evalúa.
Y esa evaluación será siempre verdadera, puesto que el programa lo lee como algo así comprueba si la variable resultado tiene contenido, y al mismo tiempo le asignas como contenido la cadena apto. Expresiones del tipo if(a = 3), if(a = 'tres')
, pero también if(3), if('texto')
siempre devolverán un resultado verdadero, porque la misma existencia del elemento lo hace cierto.
En cambio una expresión de tipo let a; if (a)
devolvería el valor falso, porque en este caso la variable está declarada antes de la condicional, pero no tiene asignado ningún valor, por lo que se considera que su valor es undefined, y en términos lógicos undefined o null significa que no tiene contenido, como también lo hace el valor false. Por lo tanto, la expresión let a; if(!a)
devuelve como resultado verdadero, porque la variable sí existe, pero no tiene contenido.
Pero es muy importante entender que para poder usar la expresión !a de forma correcta, la variable a debe existir, es decir, tiene que estar declarada, con independencia de si tiene o no contenido. Las expresiones if( !a), if(a == null),if(a == undefined)
provocarán un error de código, y por lo tanto detendrá su ejecución, si previamente no se ha declarado la variable a en algún punto del script.
if(resultado == "apto") {
...
}
Para negar una comparación usamos la exclamación de cierre (!). Para decir no igual será: !=, y no igual de forma estricta (teniendo en cuenta el tipo de datos): !==.
Podemos ver todos los operadores disponibles en enlace https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Operators#operadores_relacionales
Para expresar algo que tiene que suceder cuando no se cumple lo definido en la condición de if usamos la expresión else, que permite escribir dentro de unas llaves todo lo que ocurrirá en caso contrario. De este modo planteamos una disyuntiva. O bien se cumple la condición y el código entra en la parte de if, o no se cumple y entra en la parte de else. Pero siempre va a entrar en una de las dos.
Mediante esta expresión podemos ir comprobando diversas posibilidades de forma secuencial. La estructura es: Comprueba una primera opción, si es cierta entras en su código y terminas. Si no es cierta compruebas una segunda opción y si es cierta entras y terminas, y si no lo es puedes seguir comprobando más opciones con la misma estructura. Además se puede añadir una sentencia else final para el caso en el que no se haya cumplido ninguna de las premisas anteriores.
let num1, num2;
num1 = prompt("Dime un número");
num2 = prompt("Dime otro número");
num1 = parseInt(num1);
num2 = parseInt(num2);
if(num1 == num2) {
alert("Son iguales");
} else if (num1 > num2) {
alert("El primero es mayor");
} else {
alert("El segundo es mayor");
}
Esta expresión permite buscar un valor dentro de un conjunto cerrado de opciones. Es útil cuando los posibles valores para una variable están bien definidos de antemano, pero no resulta práctica para comparaciones de tipo "el valor de la variable es mayor que... o menor que..."", etc.
Su estructura se compone de los diferentes valores que pueda tener la variable planteados como casos, y en cada caso ponemos las instrucciones correspondientes. La última línea de cada caso debe ser una instrucción de corte para que no siga buscando más coincidencias. Además, es conveniente incluir al final del switch un caso con valor por defecto para el supuesto en el que no encontremos ninguna coincidencia.
Ejemplo:
let dia;
let resultado;
dia = prompt("¿Qué día de la semana es hoy?");
switch (dia.toLowerCase()) {
case 'lunes':
resultado = 'Empieza la semana. Horror!';
break;
case 'martes':
resultado = 'Segundo día';
break;
case 'miércoles':
case 'miercoles':
resultado = 'Estamos a mitad de semana!';
break;
case 'jueves':
resultado = 'Esto ya es otra cosa';
break;
case 'viernes':
resultado = 'Lo tenemos hecho';
break;
case 'sábado':
case 'sabado':
case 'domingo':
resultado = 'Es fin de semana';
break;
default:
resultado = 'Todos los días son iguales :(';
break;
}
alert(dia +'\n' + resultado );